package com.whfc.emp.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 人员信息DTO
 */
@Data
public class AppEmpDTO implements Serializable {

    /**
     * 人员id
     */
    private Integer empId;

    /**
     * 人员姓名
     */
    private String empName;

    /**
     * 姓名拼音
     */
    private String ename;

    /**
     * 电话
     */
    private String phone;

    /**
     * 性别 1-男 2-女
     */
    private Integer gender;

    /**
     * 用户图像
     */
    private String avatar;

    /**
     * 生日
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date birthday;

    /**
     * 民族
     */
    private String nation;

    /**
     * 学历
     */
    private Integer education;

    /**
     * 学位
     */
    private Integer degree;

    /**
     * 项目ID
     */
    private Integer projectId;

    /**
     * 组织机构
     */
    private Integer deptId;

    /**
     * 组织机构名称
     */
    private String deptName;

    /**
     * 合作单位
     */
    private Integer corpId;

    /**
     * 合作单位类型
     */
    private Integer corpType;

    /**
     * 合作单位名称
     */
    private String corpName;

    /**
     * 班组id
     */
    private Integer groupId;

    /**
     * 班组名称
     */
    private String groupName;

    /**
     * 是否班组长
     */
    private Integer leaderFlag;

    /**
     * 工人类型
     */
    private Integer workRoleId;

    /**
     * 工人类型名称
     */
    private String workRoleName;

    /**
     * 工种
     */
    private Integer workTypeId;

    /**
     * 工种名称
     */
    private String workTypeName;

    /**
     * 岗位状态 0-离岗 1-在岗
     */
    private Integer postState;

    /**
     * 入场时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date enterTime;

    /**
     * 离场时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date outerTime;

    /**
     * 安全帽硬件
     */
    private String sn;

    /**
     * 安全帽颜色
     */
    private String color;

    /**
     * 绑定状态 0-未绑定 1-已绑定
     */
    private Integer bindFlag;

    /**
     * 证件类型 (1-居民身份证 2-澳门永久居民证，3-澳门非永久居民证 4-澳门外地雇员身份识别证 5-澳门特别逗留证)
     */
    private Integer cardType;

    /**
     * 工作证编号
     */
    private String workCardNo;

    /**
     * 工作证有效期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date workCardEndDate;

    /**
     * 身份证-号码
     */
    private String idCardNo;

    /**
     * 身份证-正面
     */
    private String idCardFront;

    /**
     * 身份证-反面
     */
    private String idCardBack;

    /**
     * 身份证-发证机构
     */
    private String idCardGrantOrg;

    /**
     * 身份证-发证日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date idCardStartDate;

    /**
     * 身份证-有效期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date idCardEndDate;

    /**
     * 合同-有效期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date contractEndDate;

    /**
     * 社保-有效期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date healthEndDate;

    /**
     * 体检报告-有效期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date journeyEndDate;

    /**
     * 证书-有效期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date credEndDate;

    /**
     * 身份证头像
     */
    private String headImg;

    /**
     * 地址
     */
    private String address;

    /**
     * 出勤状态
     */
    private Integer attendState;

    /**
     * 现场状态
     */
    private Integer localeState;

    /**
     * 网络状态
     */
    private Integer netState;

    /**
     * 最近一次硬件通信时间
     */
    private Date time;

    private Date gpsTime;

    /**
     * 经度
     */
    private Double lng;

    /**
     * 纬度
     */
    private Double lat;

    /**
     * 安全帽图标
     */
    private String icon;

    /**
     * 安全帽图标地址
     */
    private String iconUrl;

    /**
     * 年龄
     */
    private Integer age;

    /**
     * 人员二维码信息
     */
    private String qr;

    /**
     * 岗位状态 0-在线 1-离线
     */
    private Integer HatState;

    /**
     * 人员编码
     */
    private String empCode;

    /**
     * 电量
     */
    private Double batteryPower;

    /**
     * 是否合格  0-不合格  1-合格
     */
    private Integer passFlag;

    /**
     * 入职离职状态
     */
    private Integer type;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 同步标识0未同步1已同步
     */
    private Integer syncState;

    /**
     * 是否有用户信息
     */
    private boolean hasSysUserInfo;
}
